#ifndef GESTUREEVENT_H
#define GESTUREEVENT_H

#include <QPoint>
#include <Map>
#include "devices/InputPoint.h"


enum GestureType { MOTION,
                   ADD_INPUT,
                   REMOVE_INPUT,
                   SELECTION,
                   DESELECTION,
                   PUSH,
                   PULL
                  };

class GestureEvent
{
public:
    GestureEvent(std::map<int, InputPoint> input, GestureType type);
	GestureEvent() {m_inputs = std::map<int, InputPoint>(), m_type = MOTION;};
	GestureEvent(const GestureEvent &ge);
	~GestureEvent() {};
	//explicit GestureEvent(InputPoint point, GestureType type);
    std::map<int, InputPoint> * inputs();
	std::map<int, InputPoint> inputs_copy() const;
	//InputPoint point() {return m_point;};
    int type() const;

private:
    std::map<int, InputPoint> m_inputs;
	//InputPoint m_point;
    int m_type;

};

#endif // GESTUREEVENT_H
